The present invention relates to a video decoder design and a video encoder design, and more particularly, to a video decoder with a shared storage device accessed by decoding functions of different video coding standards, a video encoder with a shared storage device accessed by encoding functions of different video coding standards, and the associated shared storage device.
The conventional video coding standards generally adopt a block based coding technique to exploit spatial and temporal redundancy. For example, the basic approach is to divide the whole source frame into a plurality of blocks, perform prediction on each block, transform residues of each block, and perform quantization, scan and entropy encoding. Besides, a reconstructed frame is generated in a coding loop to provide reference pixel data used for coding following blocks. For example, inverse scan, inverse quantization, and inverse transform may be included in the coding loop to recover residues of each block that will be added to predicted samples of each block for generating a reconstructed frame. The inverse scan operation, inverse quantization operation, and inverse transform operation are also performed in a video decoder for recovering residues of each block and generating a reconstructed frame.
With regard to any of the scan operation and the inverse scan operation, it requires a memory for writing transform coefficients in one order and reading transform coefficients in a different order. With regard to any of the quantization operation and the inverse quantization operation, it requires a memory for storing a table referenced for providing quantization-related parameters. When a video encoder/decoder is designed to support different video coding standards, multiple memory devices are generally implemented for use by scan/inverse scan of different video coding standards, and multiple memory devices are generally implemented for use by quantization/inverse quantization of different video coding standards. However, such a video encoder/decoder design is not cost-efficient.